package com.fpj.sat.vehicle_administrator.view.dialog;

import java.awt.Component;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;

import com.fpj.sat.vehicle_administrator.action.VehiculoAction;
import com.fpj.sat.vehicle_administrator.domain.RegistroVehiculo;
import com.fpj.sat.vehicle_administrator.util.JTextFieldLimit;
import com.fpj.sat.vehicle_administrator.util.Util;
import com.fpj.sat.vehicle_administrator.view.PrincipalFrame;
import com.fpj.sat.vehicle_administrator.view.VehiculoPanel;

public class RegistroDialog extends JDialog{
	
	private static final long serialVersionUID = 4026209775979238093L;
	private VehiculoPanel vehiculoPanel;
	private PrincipalFrame principal;
	private RegistroVehiculo registroVehiculo;
	
	private JLabel lblTitulo;
	private JLabel lblId;
	private JLabel lblTituloReg;
	private JLabel lblFecha;
	private JLabel lblUsuario;
	private JTextField txtId;
	private JTextField txtTituloReg;
	private JTextField txtFecha;
	private JTextField txtUsuario;
	private JButton btnGrabar;
	
	public RegistroDialog(VehiculoPanel vehiculoPanel, PrincipalFrame principal, RegistroVehiculo registroVehiculo) {
		super(principal);
		this.vehiculoPanel = vehiculoPanel;
		this.principal = principal;
		this.registroVehiculo = registroVehiculo;
		inicializaDialog();
		inicializaComponentes();
		inicializaData();
	}
	
	private void inicializaDialog() {
		setLayout(null);
		setBounds(Util.getAnchoPantalla(getToolkit().getScreenSize(), 0.2), 0, Util.getAnchoPantalla(getToolkit().getScreenSize(), 0.6), Util.getAltoPantalla(getToolkit().getScreenSize(), 0.5));
	}
	
	private void inicializaComponentes() {
		lblTitulo = new JLabel("MANTENIMIENTO DE REGISTRO");
		lblTitulo.setFont(new Font(lblTitulo.getFont().getFontName(), Font.BOLD, 16));
		lblTitulo.setBounds(Util.getPorcentaje(getWidth(), 0.5) - 130, 40, 260, 25);
		
		lblId = new JLabel("ID                                       :");
		lblId.setBounds(50, 80, 135, 20);
		
		lblTituloReg = new JLabel("TITULO                             :");
		lblTituloReg.setBounds(50, 110, 135, 20);
		
		lblFecha = new JLabel("FECHA DE REGISTRO :");
		lblFecha.setBounds(50, 140, 135, 20);
		
		lblUsuario = new JLabel("USUARIO                         :");
		lblUsuario.setBounds(50, 170, 135, 20);
		
		txtId = new JTextField();
		txtId.setBounds(200, 80, 220,25);
		txtId.setEditable(false);
		txtId.setFocusable(false);
		
		txtTituloReg = new JTextField();
		txtTituloReg.setDocument(new JTextFieldLimit(200));
		txtTituloReg.setBounds(200, 110, 220,25);
		
		txtFecha = new JTextField();
		txtFecha.setBounds(200, 140, 220,25);
		txtFecha.setEditable(false);
		txtFecha.setFocusable(false);
		
		txtUsuario = new JTextField();
		txtUsuario.setBounds(200, 170, 220,25);
		txtUsuario.setEditable(false);
		txtUsuario.setFocusable(false);
		
		btnGrabar = new JButton("Grabar");
		btnGrabar.setBounds(250, 220, 100, 25);
		btnGrabar.addActionListener(new VehiculoAction(this, vehiculoPanel, principal, registroVehiculo));
		
		agregarComponentes(lblTitulo, lblId, lblTituloReg, lblFecha, lblUsuario, txtId, txtTituloReg, txtFecha, txtUsuario, btnGrabar);
	}
	
	private void inicializaData(){
		if(registroVehiculo == null){
			txtId.setText("AUTOGENERADO");
			txtFecha.setText("AUTOGENERADO");
			txtUsuario.setText(PrincipalFrame.USUARIO.getNombres());
		}else{
			txtId.setText(String.valueOf(registroVehiculo.getId()));
			txtTituloReg.setText(registroVehiculo.getTitulo());
			txtFecha.setText(registroVehiculo.getFechaRegistro().toString());
			txtUsuario.setText(registroVehiculo.getUsuarioBean().getNombres());
		}
	}
	
	private void agregarComponentes(Component...componentes){
		for(Component component: componentes){
			add(component);
		}
		
	}

	public JTextField getTxtId() {
		return txtId;
	}

	public void setTxtId(JTextField txtId) {
		this.txtId = txtId;
	}

	public JTextField getTxtTituloReg() {
		return txtTituloReg;
	}

	public void setTxtTituloReg(JTextField txtTituloReg) {
		this.txtTituloReg = txtTituloReg;
	}

	public JTextField getTxtFecha() {
		return txtFecha;
	}

	public void setTxtFecha(JTextField txtFecha) {
		this.txtFecha = txtFecha;
	}

	public JTextField getTxtUsuario() {
		return txtUsuario;
	}

	public void setTxtUsuario(JTextField txtUsuario) {
		this.txtUsuario = txtUsuario;
	}

	public JButton getBtnGrabar() {
		return btnGrabar;
	}

	public void setBtnGrabar(JButton btnGrabar) {
		this.btnGrabar = btnGrabar;
	}
	
	
}
